<article>
    <h1><?php echo $GLOBALS['title'] ?></h1>
    <p>数组是在程序设计中，为了处理方便， 把若干变量按有序的形  式组织起来的一种形式。这些按序排列的同类数据元素的集合  称为数组。</p>
    <p>数组能够在单独的变量名中存储一个或多个值。</p>
    <h2><a>什么是数组？</a></h2>
    <p>数组是特殊的变量，它可以同时保存一个以上的值。</p>
    <h2><a>创建数组</a></h2>
    <p>在 PHP 中， array() 函数用于创建数组：</p>
    <pre><code><?php echo htmlspecialchars('
<?php 
	$arr = [];//方式1：直接定义一个空数组
	$arr[0]="北京";//附值
	$arr[0]="广州";//附值
	$arr = array()//方式2：用array()
	$arr = array("北京","广州");//创建并附值
 ?>') ?></code></pre>
 	<h2><a>三种数组类型</a></h2>
 	<h3>索引数组 - 带有数字索引的数组</h3>
 	<pre><code><?php echo htmlspecialchars('
<?php 
	$$cars[0]="Volvo";
	$cars[1]="BMW";
	$cars[2]="SAAB";
 ?>') ?></code></pre>
 	<h3>关联数组 - 带有指定键的数组</h3>
 	<pre><code><?php echo htmlspecialchars('
<?php 
	$age["Peter"]="35";
	$age["Ben"]="37";
	$age["Joe"]="43";
 ?>') ?></code></pre>
 	<h3>多维数组 - 包含一个或多个数组的数组</h3>
 	<pre><code><?php echo htmlspecialchars('
<?php 
	$cars = array
	  (
	  array("Volvo",22,18),
	  array("BMW",15,13),
	  array("Saab",5,2),
	  array("Land Rover",17,15)
	  );
 ?>') ?></code></pre>
 	<h2><a>foreach 循环</a></h2>
 	<p>foreach 循环只适用于数组，并用于遍历数组中的每个键/值对。</p>
 	<pre><code><?php echo htmlspecialchars('
<?php
	//方式1:循环值 
	foreach ($array as $value) {
	  code to be executed;
	  //每进行一次循环迭代，当前数组元素的值就会被赋值给 $value 变量，并且数组指针会逐一地移动，直到到达最后一个数组元素。
	}
	//方式2:循环值与键（下标）
	foreach ($array as $key => $value) {
	  code to be executed;
	}
 ?>') ?></code></pre>
 	<h2><a>Array 函数</a></h2>
 	<p>数组函数允许您访问和操作数组。支持单维和多维数组。</p>
 	<table class="dataintable">
	    <tbody>
	        <tr>
	            <th>
	                函数
	            </th>
	            <th>
	                描述
	            </th>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>创建数组。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_change_key_case()
	                </a>
	            </td>
	            <td>
	                把数组中所有键更改为小写或大写。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_chunk()
	                </a>
	            </td>
	            <td>
	                把一个数组分割为新的数组块。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_column()
	                </a>
	            </td>
	            <td>
	                返回输入数组中某个单一列的值。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_combine()
	                </a>
	            </td>
	            <td>
	                通过合并两个数组来创建一个新数组。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_count_values()
	                </a>
	            </td>
	            <td>
	                用于统计数组中所有值出现的次数。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_diff()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>比较数组，返回差集（只比较键值）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_diff_assoc()
	                </a>
	            </td>
	            <td>
	                比较数组，返回差集（比较键名和键值）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_diff_key()
	                </a>
	            </td>
	            <td>
	                比较数组，返回差集（只比较键名）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_diff_uassoc()
	                </a>
	            </td>
	            <td>
	                比较数组，返回差集（比较键名和键值，使用用户自定义的键名比较函数）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_diff_ukey()
	                </a>
	            </td>
	            <td>
	                比较数组，返回差集（只比较键名，使用用户自定义的键名比较函数）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_fill()
	                </a>
	            </td>
	            <td>
	                用给定的键值填充数组。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_fill_keys()
	                </a>
	            </td>
	            <td>
	                用指定键名的给定键值填充数组。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_filter()
	                </a>
	            </td>
	            <td>
	                用回调函数过滤数组中的元素。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_flip()
	                </a>
	            </td>
	            <td>
	                交换数组中的键和值。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_intersect()
	                </a>
	            </td>
	            <td>
	                比较数组，返回交集（只比较键值）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_intersect_assoc()
	                </a>
	            </td>
	            <td>
	                比较数组，返回交集（比较键名和键值）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_intersect_key()
	                </a>
	            </td>
	            <td>
	                比较数组，返回交集（只比较键名）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_intersect_uassoc()
	                </a>
	            </td>
	            <td>
	                比较数组，返回交集（比较键名和键值，使用用户自定义的键名比较函数）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_intersect_ukey()
	                </a>
	            </td>
	            <td>
	                比较数组，返回交集（只比较键名，使用用户自定义的键名比较函数）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_key_exists()
	                </a>
	            </td>
	            <td>
	                检查指定的键名是否存在于数组中。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_keys()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>返回数组中所有的键名。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_map()
	                </a>
	            </td>
	            <td>
	                把数组中的每个值发送到用户自定义函数，返回新的值。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_merge()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>把一个或多个数组合并为一个数组。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_merge_recursive()
	                </a>
	            </td>
	            <td>
	                递归地合并一个或多个数组。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_multisort()
	                </a>
	            </td>
	            <td>
	                对多个数组或多维数组进行排序。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_pad()
	                </a>
	            </td>
	            <td>
	                用值将数组填补到指定长度。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_pop()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>删除数组的最后一个元素（出栈）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_product()
	                </a>
	            </td>
	            <td>
	                计算数组中所有值的乘积。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_push()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>将一个或多个元素插入数组的末尾（入栈）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_rand()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>返回数组中一个或多个随机的键。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_reduce()
	                </a>
	            </td>
	            <td>
	                通过使用用户自定义函数，以字符串返回数组。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_replace()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>使用后面数组的值替换第一个数组的值。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_replace_recursive()
	                </a>
	            </td>
	            <td>
	                递归地使用后面数组的值替换第一个数组的值。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_reverse()
	                </a>
	            </td>
	            <td>
	                以相反的顺序返回数组。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_search()
	                </a>
	            </td>
	            <td>
	                搜索数组中给定的值并返回键名。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_shift()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>删除数组中首个元素，并返回被删除元素的值。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_slice()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>返回数组中被选定的部分。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_splice()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>删除并替换数组中指定的元素。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_sum()
	                </a>
	            </td>
	            <td>
	                返回数组中值的和。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_udiff()
	                </a>
	            </td>
	            <td>
	                比较数组，返回差集（只比较值，使用一个用户自定义的键名比较函数）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_udiff_assoc()
	                </a>
	            </td>
	            <td>
	                比较数组，返回差集（比较键和值，使用内建函数比较键名，使用用户自定义函数比较键值）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_udiff_uassoc()
	                </a>
	            </td>
	            <td>
	                比较数组，返回差集（比较键和值，使用两个用户自定义的键名比较函数）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_uintersect()
	                </a>
	            </td>
	            <td>
	                比较数组，返回交集（只比较值，使用一个用户自定义的键名比较函数）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_uintersect_assoc()
	                </a>
	            </td>
	            <td>
	                比较数组，返回交集（比较键和值，使用内建函数比较键名，使用用户自定义函数比较键值）。
	            </td>
	        </tr>
	        <tr>
	            <td class="no_wrap">
	                <a >
	                    array_uintersect_uassoc()
	                </a>
	            </td>
	            <td>
	                比较数组，返回交集（比较键和值，使用两个用户自定义的键名比较函数）。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_unique()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>删除数组中的重复值。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    array_unshift()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>在数组开头插入一个或多个元素。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    <code>（注意）</code>array_values()
	                </a>
	            </td>
	            <td>
	                返回数组中所有的值。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_walk()
	                </a>
	            </td>
	            <td>
	                对数组中的每个成员应用用户函数。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    array_walk_recursive()
	                </a>
	            </td>
	            <td>
	                对数组中的每个成员递归地应用用户函数。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    arsort()
	                </a>
	            </td>
	            <td>
	               <code>（注意）</code> 对关联数组按照键值进行降序排序。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    asort()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>对关联数组按照键值进行升序排序。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    compact()
	                </a>
	            </td>
	            <td>
	                创建包含变量名和它们的值的数组。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    count()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>返回数组中元素的数目。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    current()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>返回数组中的当前元素。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    each()
	                </a>
	            </td>
	            <td>
	                返回数组中当前的键／值对。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    end()
	                </a>
	            </td>
	            <td>
	                将数组的内部指针指向最后一个元素。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    extract()
	                </a>
	            </td>
	            <td>
	                从数组中将变量导入到当前的符号表。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    in_array()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>检查数组中是否存在指定的值。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    key()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>从关联数组中取得键名。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    krsort()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>对数组按照键名逆向排序。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    ksort()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>对数组按照键名排序。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a>
	                    list()
	                </a>
	            </td>
	            <td>
	                把数组中的值赋给一些变量。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    natcasesort()
	                </a>
	            </td>
	            <td>
	                用“自然排序”算法对数组进行不区分大小写字母的排序。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    natsort()
	                </a>
	            </td>
	            <td>
	                用“自然排序”算法对数组排序。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    next()
	                </a>
	            </td>
	            <td>
	                将数组中的内部指针向前移动一位。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    pos()
	                </a>
	            </td>
	            <td>
	                current() 的别名。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    prev()
	                </a>
	            </td>
	            <td>
	                将数组的内部指针倒回一位。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    range()
	                </a>
	            </td>
	            <td>
	                创建包含指定范围单元的数组。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    reset()
	                </a>
	            </td>
	            <td>
	                将数组的内部指针指向第一个元素。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    rsort()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>对数组逆向排序。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    shuffle()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>将数组打乱。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    sizeof()
	                </a>
	            </td>
	            <td>
	                count() 的别名。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    sort()
	                </a>
	            </td>
	            <td>
	                <code>（注意）</code>对数组排序。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    uasort()
	                </a>
	            </td>
	            <td>
	                使用用户自定义的比较函数对数组中的键值进行排序。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    uksort()
	                </a>
	            </td>
	            <td>
	                使用用户自定义的比较函数对数组中的键名进行排序。
	            </td>
	        </tr>
	        <tr>
	            <td>
	                <a >
	                    usort()
	                </a>
	            </td>
	            <td>
	                使用用户自定义的比较函数对数组进行排序。
	            </td>
	        </tr>
	    </tbody>
	</table>
	<h2><a>var_export函数</a></h2>
	<p>var_export — 输出或返回一个变量的字符串表示</p>
	<p>此函数返回关于传递给该函数的变量的结构信息，它和 var_dump() 类似，不同的是其返回的表示是合法的 PHP 代码。您可以通过将函数的第二个参数设置为 TRUE，从而返回变量的表示。</p>
	<h3>作业</h3>
	<blockquote>
		<ol>
			<li>构建自己的一个方法，实现对数组的排序</li>
			<li>创建递归函数完成多维数组key的大小写转换，弥补  array_change_key_case函数功能的不足。</li>
			<li>创建出操作网站配置文件的C()函数</li>
		</ol>
	</blockquote>
</article>